<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>shark::CMA Class Reference</title>
<script type="text/javaScript" src="search/search.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3.0.1/es5/tex-mml-chtml.js"></script>
<script src="../../mlstyle.js"></script>
<link href="../css/besser.css" rel="stylesheet" type="text/css"/>
</head>
<!-- pretty cool: each body gets an id tag which is the basename of the web page  -->
<!--              and allows for page-specific CSS. this is client-side scripted, -->
<!--              so the id will not yet show up in the served source code -->
<script type="text/javascript">
    jQuery(document).ready(function () {
        var url = jQuery(location).attr('href');
        var pname = url.substr(url.lastIndexOf("/")+1, url.lastIndexOf(".")-url.lastIndexOf("/")-1);
        jQuery('#this_url').html('<strong>' + pname + '</strong>');
        jQuery('body').attr('id', pname);
    });
</script>
<body>
    <div id="shark_old">
        <div id="wrap">
            <div id="header">
                <div id="site-name"><a href="../../sphinx_pages/build/html/index.html">Shark machine learning library</a></div>
                <ul id="nav">
                    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/installation.html">Installation</a>
                    </li>
		    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/tutorials/tutorials.html">Tutorials</a>
                    </li>
		    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/benchmark.html">Benchmarks</a>
                    </li>
                    <li class="active">
                        <a href="classes.html">Documentation</a>
                        <ul>
                            <li class="first"></li>
                            <li><a href="../../sphinx_pages/build/html/rest_sources/quickref/quickref.html">Quick references</a></li>
                            <li><a href="classes.html">Class list</a></li>
                            <li class="last"><a href="group__shark__globals.html">Global functions</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </div>
<div id="doxywrapper">
<!--
    <div id="global_doxytitle">Doxygen<br>Documentation:</div>
-->
    <div id="navrow_wrapper">
<!-- Generated by Doxygen 1.9.8 -->
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceshark.html">shark</a></li><li class="navelem"><a class="el" href="classshark_1_1_c_m_a.html">CMA</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="classshark_1_1_c_m_a-members.html">List of all members</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a>  </div>
  <div class="headertitle"><div class="title">shark::CMA Class Reference<div class="ingroups"><a class="el" href="group__optimizers.html">Algorithms to find a local minimum of\ref objfunctions.</a> &raquo; <a class="el" href="group__singledirect.html">Single-objective Direct-Search optimizers</a></div></div></div>
</div><!--header-->
<div class="contents">

<p>Implements the CMA-ES.  
 <a href="classshark_1_1_c_m_a.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_c_m_a_8h_source.html">shark/Algorithms/DirectSearch/CMA.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for shark::CMA:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classshark_1_1_c_m_a__inherit__graph.png" border="0" usemap="#ashark_1_1_c_m_a_inherit__map" alt="Inheritance graph"/></div>
<map name="ashark_1_1_c_m_a_inherit__map" id="ashark_1_1_c_m_a_inherit__map">
<area shape="rect" title="Implements the CMA&#45;ES." alt="" coords="60,94,152,120"/>
<area shape="rect" href="classshark_1_1_abstract_single_objective_optimizer.html" title=" " alt="" coords="5,5,207,46"/>
<area shape="poly" title=" " alt="" coords="109,62,109,93,103,93,103,62"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aafbd8e245dd9f8aad0e0e597557c9eb3" id="r_aafbd8e245dd9f8aad0e0e597557c9eb3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3">RecombinationType</a> { <a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3addcb82a4284c2072d046f6f6c5ae354d">EQUAL</a> = 0
, <a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3a8b5ed54ee62cc5823b177633b76c376c">LINEAR</a> = 1
, <a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3a791798e0145d16d584a2bbb7d2deddb7">SUPERLINEAR</a> = 2
 }</td></tr>
<tr class="memdesc:aafbd8e245dd9f8aad0e0e597557c9eb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Models the recombination type.  <a href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3">More...</a><br /></td></tr>
<tr class="separator:aafbd8e245dd9f8aad0e0e597557c9eb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classshark_1_1_abstract_single_objective_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classshark_1_1_abstract_single_objective_optimizer')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html">shark::AbstractSingleObjectiveOptimizer&lt; RealVector &gt;</a></td></tr>
<tr class="memitem:a85f0d04fdfb094dba4dc80b1fb5e3adb inherit pub_types_classshark_1_1_abstract_single_objective_optimizer" id="r_a85f0d04fdfb094dba4dc80b1fb5e3adb"><td class="memItemLeft" align="right" valign="top">typedef base_type::SearchPointType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a></td></tr>
<tr class="separator:a85f0d04fdfb094dba4dc80b1fb5e3adb inherit pub_types_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8abcd574faa4b7bd2fed03465d1eda35 inherit pub_types_classshark_1_1_abstract_single_objective_optimizer" id="r_a8abcd574faa4b7bd2fed03465d1eda35"><td class="memItemLeft" align="right" valign="top">typedef base_type::SolutionType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a8abcd574faa4b7bd2fed03465d1eda35">SolutionType</a></td></tr>
<tr class="separator:a8abcd574faa4b7bd2fed03465d1eda35 inherit pub_types_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a068a68c8739215f4a13ce8a433ec38b3 inherit pub_types_classshark_1_1_abstract_single_objective_optimizer" id="r_a068a68c8739215f4a13ce8a433ec38b3"><td class="memItemLeft" align="right" valign="top">typedef base_type::ResultType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a068a68c8739215f4a13ce8a433ec38b3">ResultType</a></td></tr>
<tr class="separator:a068a68c8739215f4a13ce8a433ec38b3 inherit pub_types_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4c05609c54d7ebc99d099e7dd6e228f inherit pub_types_classshark_1_1_abstract_single_objective_optimizer" id="r_aa4c05609c54d7ebc99d099e7dd6e228f"><td class="memItemLeft" align="right" valign="top">typedef base_type::ObjectiveFunctionType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#aa4c05609c54d7ebc99d099e7dd6e228f">ObjectiveFunctionType</a></td></tr>
<tr class="separator:aa4c05609c54d7ebc99d099e7dd6e228f inherit pub_types_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classshark_1_1_abstract_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classshark_1_1_abstract_optimizer')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classshark_1_1_abstract_optimizer.html">shark::AbstractOptimizer&lt; PointType, ResultT, SolutionTypeT &gt;</a></td></tr>
<tr class="memitem:a77bf437afee3445601c680cc652410f0 inherit pub_types_classshark_1_1_abstract_optimizer" id="r_a77bf437afee3445601c680cc652410f0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0">Feature</a> { <br />
&#160;&#160;<a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0af46b9e1111a0858df3670fe12e4ffbf0">REQUIRES_VALUE</a> = 1
, <a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0ad9b925369d4f923c63792bf455eac1d7">REQUIRES_FIRST_DERIVATIVE</a> = 2
, <a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0a0a32670987bb219aaf2f6defc70e6f03">REQUIRES_SECOND_DERIVATIVE</a> = 4
, <a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0ab95c65f700f2158f39039d8f580d350f">CAN_SOLVE_CONSTRAINED</a> = 8
, <br />
&#160;&#160;<a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0addbe7762d6f4f8769cc06f61bc9c5c28">REQUIRES_CLOSEST_FEASIBLE</a> = 16
<br />
 }</td></tr>
<tr class="memdesc:a77bf437afee3445601c680cc652410f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Models features that the optimizer requires from the objective function.  <a href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0">More...</a><br /></td></tr>
<tr class="separator:a77bf437afee3445601c680cc652410f0 inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abea8df343e5638782a9a82403adb5ae1 inherit pub_types_classshark_1_1_abstract_optimizer" id="r_abea8df343e5638782a9a82403adb5ae1"><td class="memItemLeft" align="right" valign="top">typedef PointType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#abea8df343e5638782a9a82403adb5ae1">SearchPointType</a></td></tr>
<tr class="separator:abea8df343e5638782a9a82403adb5ae1 inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89ed73f010deb3809acbcf23160c0f6b inherit pub_types_classshark_1_1_abstract_optimizer" id="r_a89ed73f010deb3809acbcf23160c0f6b"><td class="memItemLeft" align="right" valign="top">typedef ResultT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a89ed73f010deb3809acbcf23160c0f6b">ResultType</a></td></tr>
<tr class="separator:a89ed73f010deb3809acbcf23160c0f6b inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc94d354dbe0b99c0a69ec3e6e5e8657 inherit pub_types_classshark_1_1_abstract_optimizer" id="r_abc94d354dbe0b99c0a69ec3e6e5e8657"><td class="memItemLeft" align="right" valign="top">typedef SolutionTypeT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#abc94d354dbe0b99c0a69ec3e6e5e8657">SolutionType</a></td></tr>
<tr class="separator:abc94d354dbe0b99c0a69ec3e6e5e8657 inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7a9b0634e5a5cbd683f5510b41b7062 inherit pub_types_classshark_1_1_abstract_optimizer" id="r_ac7a9b0634e5a5cbd683f5510b41b7062"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classshark_1_1_abstract_objective_function.html">AbstractObjectiveFunction</a>&lt; PointType, <a class="el" href="classshark_1_1_abstract_optimizer.html#a89ed73f010deb3809acbcf23160c0f6b">ResultType</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#ac7a9b0634e5a5cbd683f5510b41b7062">ObjectiveFunctionType</a></td></tr>
<tr class="separator:ac7a9b0634e5a5cbd683f5510b41b7062 inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab43ff108d945a982e98495432ace599f inherit pub_types_classshark_1_1_abstract_optimizer" id="r_ab43ff108d945a982e98495432ace599f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classshark_1_1_typed_flags.html">TypedFlags</a>&lt; <a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0">Feature</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#ab43ff108d945a982e98495432ace599f">Features</a></td></tr>
<tr class="separator:ab43ff108d945a982e98495432ace599f inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47751327ce0519d3378a9b2ad188d1e6 inherit pub_types_classshark_1_1_abstract_optimizer" id="r_a47751327ce0519d3378a9b2ad188d1e6"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classshark_1_1_typed_feature_not_available_exception.html">TypedFeatureNotAvailableException</a>&lt; <a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0">Feature</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a47751327ce0519d3378a9b2ad188d1e6">FeatureNotAvailableException</a></td></tr>
<tr class="separator:a47751327ce0519d3378a9b2ad188d1e6 inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a87ad8d08471b5488311a53c5f0a07594" id="r_a87ad8d08471b5488311a53c5f0a07594"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a87ad8d08471b5488311a53c5f0a07594">CMA</a> (random::rng_type &amp;rng=<a class="el" href="namespaceshark_1_1random.html#ab5c1547eee483974d008d43f621a2234">random::globalRng</a>)</td></tr>
<tr class="memdesc:a87ad8d08471b5488311a53c5f0a07594"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default c'tor.  <br /></td></tr>
<tr class="separator:a87ad8d08471b5488311a53c5f0a07594"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5552a900fb20cb35af9103467796e18e" id="r_a5552a900fb20cb35af9103467796e18e"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a5552a900fb20cb35af9103467796e18e">name</a> () const</td></tr>
<tr class="memdesc:a5552a900fb20cb35af9103467796e18e"><td class="mdescLeft">&#160;</td><td class="mdescRight">From <a class="el" href="classshark_1_1_i_nameable.html" title="This class is an interface for all objects which can have a name.">INameable</a>: return the class name.  <br /></td></tr>
<tr class="separator:a5552a900fb20cb35af9103467796e18e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af043e55b471f98e30cf86e00349ddb5b" id="r_af043e55b471f98e30cf86e00349ddb5b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#af043e55b471f98e30cf86e00349ddb5b">read</a> (<a class="el" href="namespaceshark.html#ada68729491840669e47c8ad42282424f">InArchive</a> &amp;archive)</td></tr>
<tr class="memdesc:af043e55b471f98e30cf86e00349ddb5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the component from the supplied archive.  <br /></td></tr>
<tr class="separator:af043e55b471f98e30cf86e00349ddb5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69554923b2647c1eddf0aa3ca5a1ab53" id="r_a69554923b2647c1eddf0aa3ca5a1ab53"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a69554923b2647c1eddf0aa3ca5a1ab53">write</a> (<a class="el" href="namespaceshark.html#af4f8eb8e9618f5236b71bbcb12b8a524">OutArchive</a> &amp;archive) const</td></tr>
<tr class="memdesc:a69554923b2647c1eddf0aa3ca5a1ab53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the component to the supplied archive.  <br /></td></tr>
<tr class="separator:a69554923b2647c1eddf0aa3ca5a1ab53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28cc4e5f5429c3a6c1b650c1f75e76db" id="r_a28cc4e5f5429c3a6c1b650c1f75e76db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a28cc4e5f5429c3a6c1b650c1f75e76db">init</a> (<a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#aa4c05609c54d7ebc99d099e7dd6e228f">ObjectiveFunctionType</a> const &amp;function, <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> const &amp;p)</td></tr>
<tr class="memdesc:a28cc4e5f5429c3a6c1b650c1f75e76db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the algorithm for the supplied objective function.  <br /></td></tr>
<tr class="separator:a28cc4e5f5429c3a6c1b650c1f75e76db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6de4377a5bdc84947c86d0394be08179" id="r_a6de4377a5bdc84947c86d0394be08179"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a6de4377a5bdc84947c86d0394be08179">init</a> (<a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#aa4c05609c54d7ebc99d099e7dd6e228f">ObjectiveFunctionType</a> const &amp;function, <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> const &amp;initialSearchPoint, std::size_t <a class="el" href="classshark_1_1_c_m_a.html#a7beed1a597007c62fe9e397c5e6ea6f6">lambda</a>, std::size_t <a class="el" href="classshark_1_1_c_m_a.html#a5c5cd3173b9aef38c6e113517bd8b3d6">mu</a>, double initialSigma, const boost::optional&lt; RealMatrix &gt; &amp;initialCovarianceMatrix=boost::optional&lt; RealMatrix &gt;())</td></tr>
<tr class="memdesc:a6de4377a5bdc84947c86d0394be08179"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the algorithm for the supplied objective function.  <br /></td></tr>
<tr class="separator:a6de4377a5bdc84947c86d0394be08179"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4aa0ce8e2e580d20c5a99e5723e974b1" id="r_a4aa0ce8e2e580d20c5a99e5723e974b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a4aa0ce8e2e580d20c5a99e5723e974b1">step</a> (<a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#aa4c05609c54d7ebc99d099e7dd6e228f">ObjectiveFunctionType</a> const &amp;function)</td></tr>
<tr class="memdesc:a4aa0ce8e2e580d20c5a99e5723e974b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes one iteration of the algorithm.  <br /></td></tr>
<tr class="separator:a4aa0ce8e2e580d20c5a99e5723e974b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a292d0d4952eb924db23f028fa2f9135d" id="r_a292d0d4952eb924db23f028fa2f9135d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a292d0d4952eb924db23f028fa2f9135d">setInitialSigma</a> (double initSigma)</td></tr>
<tr class="memdesc:a292d0d4952eb924db23f028fa2f9135d"><td class="mdescLeft">&#160;</td><td class="mdescRight">sets the initial step length sigma  <br /></td></tr>
<tr class="separator:a292d0d4952eb924db23f028fa2f9135d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65bdf7e58529550129e284b9dc4d55a3" id="r_a65bdf7e58529550129e284b9dc4d55a3"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a65bdf7e58529550129e284b9dc4d55a3">sigma</a> () const</td></tr>
<tr class="memdesc:a65bdf7e58529550129e284b9dc4d55a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses the current step size.  <br /></td></tr>
<tr class="separator:a65bdf7e58529550129e284b9dc4d55a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae078f86fe38152ef21788d97878dc959" id="r_ae078f86fe38152ef21788d97878dc959"><td class="memItemLeft" align="right" valign="top">RealVector const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#ae078f86fe38152ef21788d97878dc959">mean</a> () const</td></tr>
<tr class="memdesc:ae078f86fe38152ef21788d97878dc959"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses the current population mean.  <br /></td></tr>
<tr class="separator:ae078f86fe38152ef21788d97878dc959"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe589b2e99897da15278127267247ac8" id="r_abe589b2e99897da15278127267247ac8"><td class="memItemLeft" align="right" valign="top">RealVector const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#abe589b2e99897da15278127267247ac8">weights</a> () const</td></tr>
<tr class="memdesc:abe589b2e99897da15278127267247ac8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses the current weighting vector.  <br /></td></tr>
<tr class="separator:abe589b2e99897da15278127267247ac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad70e86120d062d0a79b11e4830586655" id="r_ad70e86120d062d0a79b11e4830586655"><td class="memItemLeft" align="right" valign="top">RealVector const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#ad70e86120d062d0a79b11e4830586655">evolutionPath</a> () const</td></tr>
<tr class="memdesc:ad70e86120d062d0a79b11e4830586655"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses the evolution path for the covariance matrix update.  <br /></td></tr>
<tr class="separator:ad70e86120d062d0a79b11e4830586655"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a441e3888a8ec95f696cc49bd5f3c5a36" id="r_a441e3888a8ec95f696cc49bd5f3c5a36"><td class="memItemLeft" align="right" valign="top">RealVector const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a441e3888a8ec95f696cc49bd5f3c5a36">evolutionPathSigma</a> () const</td></tr>
<tr class="memdesc:a441e3888a8ec95f696cc49bd5f3c5a36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses the evolution path for the step size update.  <br /></td></tr>
<tr class="separator:a441e3888a8ec95f696cc49bd5f3c5a36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fe67c78f272defd3e468d0eeaa1a553" id="r_a2fe67c78f272defd3e468d0eeaa1a553"><td class="memItemLeft" align="right" valign="top">RealMatrix const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a2fe67c78f272defd3e468d0eeaa1a553">covarianceMatrix</a> () const</td></tr>
<tr class="memdesc:a2fe67c78f272defd3e468d0eeaa1a553"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses the covariance matrix of the normal distribution used for generating offspring individuals.  <br /></td></tr>
<tr class="separator:a2fe67c78f272defd3e468d0eeaa1a553"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a013cafb7bc9296b5a07e8f400be1d538" id="r_a013cafb7bc9296b5a07e8f400be1d538"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3">RecombinationType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a013cafb7bc9296b5a07e8f400be1d538">recombinationType</a> () const</td></tr>
<tr class="memdesc:a013cafb7bc9296b5a07e8f400be1d538"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses the recombination type.  <br /></td></tr>
<tr class="separator:a013cafb7bc9296b5a07e8f400be1d538"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a348c6dfe6ac26b96e895e0cd4548883b" id="r_a348c6dfe6ac26b96e895e0cd4548883b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3">RecombinationType</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a348c6dfe6ac26b96e895e0cd4548883b">recombinationType</a> ()</td></tr>
<tr class="memdesc:a348c6dfe6ac26b96e895e0cd4548883b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a mutable reference to the recombination type.  <br /></td></tr>
<tr class="separator:a348c6dfe6ac26b96e895e0cd4548883b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67da4539c2b2e375f2c308c190fc5b4f" id="r_a67da4539c2b2e375f2c308c190fc5b4f"><td class="memItemLeft" align="right" valign="top">const double &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a67da4539c2b2e375f2c308c190fc5b4f">lowerBound</a> () const</td></tr>
<tr class="memdesc:a67da4539c2b2e375f2c308c190fc5b4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a const reference to the lower bound on sigma times smalles eigenvalue.  <br /></td></tr>
<tr class="separator:a67da4539c2b2e375f2c308c190fc5b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f4512c82509097dfbb327971032c49f" id="r_a2f4512c82509097dfbb327971032c49f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a2f4512c82509097dfbb327971032c49f">setLowerBound</a> (double <a class="el" href="classshark_1_1_c_m_a.html#a67da4539c2b2e375f2c308c190fc5b4f">lowerBound</a>)</td></tr>
<tr class="memdesc:a2f4512c82509097dfbb327971032c49f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the lower bound on sigma times smalles eigenvalue.  <br /></td></tr>
<tr class="separator:a2f4512c82509097dfbb327971032c49f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c5cd3173b9aef38c6e113517bd8b3d6" id="r_a5c5cd3173b9aef38c6e113517bd8b3d6"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a5c5cd3173b9aef38c6e113517bd8b3d6">mu</a> () const</td></tr>
<tr class="memdesc:a5c5cd3173b9aef38c6e113517bd8b3d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of the parent population \(\mu\).  <br /></td></tr>
<tr class="separator:a5c5cd3173b9aef38c6e113517bd8b3d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad3d3aa0509567312d63c4a42fa90812" id="r_aad3d3aa0509567312d63c4a42fa90812"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#aad3d3aa0509567312d63c4a42fa90812">setMu</a> (std::size_t <a class="el" href="classshark_1_1_c_m_a.html#a5c5cd3173b9aef38c6e113517bd8b3d6">mu</a>)</td></tr>
<tr class="memdesc:aad3d3aa0509567312d63c4a42fa90812"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the number of selected samples.  <br /></td></tr>
<tr class="separator:aad3d3aa0509567312d63c4a42fa90812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2204984f1f5de901f4c69c64a51fb765" id="r_a2204984f1f5de901f4c69c64a51fb765"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a2204984f1f5de901f4c69c64a51fb765">setLambda</a> (std::size_t <a class="el" href="classshark_1_1_c_m_a.html#a7beed1a597007c62fe9e397c5e6ea6f6">lambda</a>)</td></tr>
<tr class="memdesc:a2204984f1f5de901f4c69c64a51fb765"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the number of sampled points.  <br /></td></tr>
<tr class="separator:a2204984f1f5de901f4c69c64a51fb765"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7beed1a597007c62fe9e397c5e6ea6f6" id="r_a7beed1a597007c62fe9e397c5e6ea6f6"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a7beed1a597007c62fe9e397c5e6ea6f6">lambda</a> () const</td></tr>
<tr class="memdesc:a7beed1a597007c62fe9e397c5e6ea6f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a immutable reference to the size of the offspring population \(\mu\).  <br /></td></tr>
<tr class="separator:a7beed1a597007c62fe9e397c5e6ea6f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a258efdafafccec607bd09eaebd9955cc" id="r_a258efdafafccec607bd09eaebd9955cc"><td class="memItemLeft" align="right" valign="top">RealMatrix const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a258efdafafccec607bd09eaebd9955cc">eigenVectors</a> () const</td></tr>
<tr class="memdesc:a258efdafafccec607bd09eaebd9955cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns eigenvectors of covariance matrix (not considering step size)  <br /></td></tr>
<tr class="separator:a258efdafafccec607bd09eaebd9955cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6735aa83880d1be9675f24dea483f665" id="r_a6735aa83880d1be9675f24dea483f665"><td class="memItemLeft" align="right" valign="top">RealVector const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a6735aa83880d1be9675f24dea483f665">eigenValues</a> () const</td></tr>
<tr class="memdesc:a6735aa83880d1be9675f24dea483f665"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a eigenvectors of covariance matrix (not considering step size)  <br /></td></tr>
<tr class="separator:a6735aa83880d1be9675f24dea483f665"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a80596955e5d064cc8e6f2a69498c5e" id="r_a7a80596955e5d064cc8e6f2a69498c5e"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a7a80596955e5d064cc8e6f2a69498c5e">condition</a> () const</td></tr>
<tr class="memdesc:a7a80596955e5d064cc8e6f2a69498c5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns condition of covariance matrix.  <br /></td></tr>
<tr class="separator:a7a80596955e5d064cc8e6f2a69498c5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a217a3a2c532ba6f3adfe58bb13b8de44" id="r_a217a3a2c532ba6f3adfe58bb13b8de44"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a217a3a2c532ba6f3adfe58bb13b8de44">numberOfEvaluations</a> () const</td></tr>
<tr class="memdesc:a217a3a2c532ba6f3adfe58bb13b8de44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns how often a point is evaluated.  <br /></td></tr>
<tr class="separator:a217a3a2c532ba6f3adfe58bb13b8de44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classshark_1_1_abstract_single_objective_optimizer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html">shark::AbstractSingleObjectiveOptimizer&lt; RealVector &gt;</a></td></tr>
<tr class="memitem:a1bd54036e3524dc2ddf02afeadc0939f inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer" id="r_a1bd54036e3524dc2ddf02afeadc0939f"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a1bd54036e3524dc2ddf02afeadc0939f">numInitPoints</a> () const</td></tr>
<tr class="memdesc:a1bd54036e3524dc2ddf02afeadc0939f inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">By default most single objective optimizers only require a single point.  <br /></td></tr>
<tr class="separator:a1bd54036e3524dc2ddf02afeadc0939f inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a246f1f1d4e0566c9a0ca43035a63fad5 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer" id="r_a246f1f1d4e0566c9a0ca43035a63fad5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a246f1f1d4e0566c9a0ca43035a63fad5">init</a> (<a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#aa4c05609c54d7ebc99d099e7dd6e228f">ObjectiveFunctionType</a> const &amp;function, std::vector&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt; const &amp;initPoints)</td></tr>
<tr class="memdesc:a246f1f1d4e0566c9a0ca43035a63fad5 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the optimizer for the supplied objective function using a set of initialisation points.  <br /></td></tr>
<tr class="separator:a246f1f1d4e0566c9a0ca43035a63fad5 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0909596fcc4f80a8d108859b20b64a81 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer" id="r_a0909596fcc4f80a8d108859b20b64a81"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a8abcd574faa4b7bd2fed03465d1eda35">SolutionType</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a0909596fcc4f80a8d108859b20b64a81">solution</a> () const</td></tr>
<tr class="memdesc:a0909596fcc4f80a8d108859b20b64a81 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the current solution of the optimizer  <br /></td></tr>
<tr class="separator:a0909596fcc4f80a8d108859b20b64a81 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classshark_1_1_abstract_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classshark_1_1_abstract_optimizer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classshark_1_1_abstract_optimizer.html">shark::AbstractOptimizer&lt; PointType, ResultT, SolutionTypeT &gt;</a></td></tr>
<tr class="memitem:a40334039f6e799b2255d229874e9fa39 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_a40334039f6e799b2255d229874e9fa39"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classshark_1_1_abstract_optimizer.html#ab43ff108d945a982e98495432ace599f">Features</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a40334039f6e799b2255d229874e9fa39">features</a> () const</td></tr>
<tr class="separator:a40334039f6e799b2255d229874e9fa39 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc0219242dff14757398c81d2e82c22e inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_adc0219242dff14757398c81d2e82c22e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#adc0219242dff14757398c81d2e82c22e">updateFeatures</a> ()</td></tr>
<tr class="separator:adc0219242dff14757398c81d2e82c22e inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8645fb354408c89d3537aa87aed49b79 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_a8645fb354408c89d3537aa87aed49b79"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a8645fb354408c89d3537aa87aed49b79">requiresValue</a> () const</td></tr>
<tr class="separator:a8645fb354408c89d3537aa87aed49b79 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13dff098bcde14529b64be653d73d57f inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_a13dff098bcde14529b64be653d73d57f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a13dff098bcde14529b64be653d73d57f">requiresFirstDerivative</a> () const</td></tr>
<tr class="separator:a13dff098bcde14529b64be653d73d57f inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9da146985b7738554e09f75a670f8c97 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_a9da146985b7738554e09f75a670f8c97"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a9da146985b7738554e09f75a670f8c97">requiresSecondDerivative</a> () const</td></tr>
<tr class="separator:a9da146985b7738554e09f75a670f8c97 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecad1d60d38fd243eaf7c7bf0f6d01af inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_aecad1d60d38fd243eaf7c7bf0f6d01af"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#aecad1d60d38fd243eaf7c7bf0f6d01af">canSolveConstrained</a> () const</td></tr>
<tr class="separator:aecad1d60d38fd243eaf7c7bf0f6d01af inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9332ad1b90deed11ee6709a92964bc9 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_aa9332ad1b90deed11ee6709a92964bc9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#aa9332ad1b90deed11ee6709a92964bc9">requiresClosestFeasible</a> () const</td></tr>
<tr class="separator:aa9332ad1b90deed11ee6709a92964bc9 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd45149f57784a117e8f62d0763bf891 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_abd45149f57784a117e8f62d0763bf891"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#abd45149f57784a117e8f62d0763bf891">~AbstractOptimizer</a> ()</td></tr>
<tr class="separator:abd45149f57784a117e8f62d0763bf891 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa65e7eece1d248594253b799cf20e7a inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_aaa65e7eece1d248594253b799cf20e7a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#aaa65e7eece1d248594253b799cf20e7a">init</a> (<a class="el" href="classshark_1_1_abstract_optimizer.html#ac7a9b0634e5a5cbd683f5510b41b7062">ObjectiveFunctionType</a> const &amp;function)</td></tr>
<tr class="memdesc:aaa65e7eece1d248594253b799cf20e7a inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the optimizer for the supplied objective function.  <br /></td></tr>
<tr class="separator:aaa65e7eece1d248594253b799cf20e7a inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f6f869a2ea7c6d29e70f8248f076f66 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_a5f6f869a2ea7c6d29e70f8248f076f66"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a5f6f869a2ea7c6d29e70f8248f076f66">init</a> (<a class="el" href="classshark_1_1_abstract_optimizer.html#ac7a9b0634e5a5cbd683f5510b41b7062">ObjectiveFunctionType</a> const &amp;function, std::vector&lt; <a class="el" href="classshark_1_1_abstract_optimizer.html#abea8df343e5638782a9a82403adb5ae1">SearchPointType</a> &gt; const &amp;initPoints)=0</td></tr>
<tr class="memdesc:a5f6f869a2ea7c6d29e70f8248f076f66 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the optimizer for the supplied objective function using a set of initialisation points.  <br /></td></tr>
<tr class="separator:a5f6f869a2ea7c6d29e70f8248f076f66 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfc507951eb09c50d62c474c79d773ea inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_abfc507951eb09c50d62c474c79d773ea"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#abfc507951eb09c50d62c474c79d773ea">step</a> (<a class="el" href="classshark_1_1_abstract_optimizer.html#ac7a9b0634e5a5cbd683f5510b41b7062">ObjectiveFunctionType</a> const &amp;function)=0</td></tr>
<tr class="memdesc:abfc507951eb09c50d62c474c79d773ea inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Carry out one step of the optimizer for the supplied objective function.  <br /></td></tr>
<tr class="separator:abfc507951eb09c50d62c474c79d773ea inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classshark_1_1_i_nameable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classshark_1_1_i_nameable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classshark_1_1_i_nameable.html">shark::INameable</a></td></tr>
<tr class="memitem:a877dbdfc6b58ea836495143cea44a98c inherit pub_methods_classshark_1_1_i_nameable" id="r_a877dbdfc6b58ea836495143cea44a98c"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_i_nameable.html#a877dbdfc6b58ea836495143cea44a98c">~INameable</a> ()</td></tr>
<tr class="separator:a877dbdfc6b58ea836495143cea44a98c inherit pub_methods_classshark_1_1_i_nameable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classshark_1_1_i_serializable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classshark_1_1_i_serializable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classshark_1_1_i_serializable.html">shark::ISerializable</a></td></tr>
<tr class="memitem:a7baa9ce108d7278822297ce15882782a inherit pub_methods_classshark_1_1_i_serializable" id="r_a7baa9ce108d7278822297ce15882782a"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_i_serializable.html#a7baa9ce108d7278822297ce15882782a">~ISerializable</a> ()</td></tr>
<tr class="memdesc:a7baa9ce108d7278822297ce15882782a inherit pub_methods_classshark_1_1_i_serializable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual d'tor.  <br /></td></tr>
<tr class="separator:a7baa9ce108d7278822297ce15882782a inherit pub_methods_classshark_1_1_i_serializable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdda0c5b8e065b8afbac2cba8f58e841 inherit pub_methods_classshark_1_1_i_serializable" id="r_abdda0c5b8e065b8afbac2cba8f58e841"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_i_serializable.html#abdda0c5b8e065b8afbac2cba8f58e841">load</a> (<a class="el" href="namespaceshark.html#ada68729491840669e47c8ad42282424f">InArchive</a> &amp;archive, unsigned int version)</td></tr>
<tr class="memdesc:abdda0c5b8e065b8afbac2cba8f58e841 inherit pub_methods_classshark_1_1_i_serializable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Versioned loading of components, calls read(...).  <br /></td></tr>
<tr class="separator:abdda0c5b8e065b8afbac2cba8f58e841 inherit pub_methods_classshark_1_1_i_serializable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bf66fa8db15cc529bec98976a2f5255 inherit pub_methods_classshark_1_1_i_serializable" id="r_a5bf66fa8db15cc529bec98976a2f5255"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_i_serializable.html#a5bf66fa8db15cc529bec98976a2f5255">save</a> (<a class="el" href="namespaceshark.html#af4f8eb8e9618f5236b71bbcb12b8a524">OutArchive</a> &amp;archive, unsigned int version) const</td></tr>
<tr class="memdesc:a5bf66fa8db15cc529bec98976a2f5255 inherit pub_methods_classshark_1_1_i_serializable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Versioned storing of components, calls write(...).  <br /></td></tr>
<tr class="separator:a5bf66fa8db15cc529bec98976a2f5255 inherit pub_methods_classshark_1_1_i_serializable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4560a94e8f4908fe8627e41e7d965735 inherit pub_methods_classshark_1_1_i_serializable" id="r_a4560a94e8f4908fe8627e41e7d965735"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_i_serializable.html#a4560a94e8f4908fe8627e41e7d965735">BOOST_SERIALIZATION_SPLIT_MEMBER</a> ()</td></tr>
<tr class="separator:a4560a94e8f4908fe8627e41e7d965735 inherit pub_methods_classshark_1_1_i_serializable"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:afc7fa629a06f22c0f1cb09ca8c7cedd2" id="r_afc7fa629a06f22c0f1cb09ca8c7cedd2"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#afc7fa629a06f22c0f1cb09ca8c7cedd2">suggestLambda</a> (std::size_t dimension)</td></tr>
<tr class="memdesc:afc7fa629a06f22c0f1cb09ca8c7cedd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates lambda for the supplied dimensionality n.  <br /></td></tr>
<tr class="separator:afc7fa629a06f22c0f1cb09ca8c7cedd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4b806974a96ecb62991bd8b5f88ae69" id="r_aa4b806974a96ecb62991bd8b5f88ae69"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#aa4b806974a96ecb62991bd8b5f88ae69">suggestMu</a> (std::size_t <a class="el" href="classshark_1_1_c_m_a.html#a7beed1a597007c62fe9e397c5e6ea6f6">lambda</a>, <a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3">RecombinationType</a> recomb=<a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3a791798e0145d16d584a2bbb7d2deddb7">SUPERLINEAR</a>)</td></tr>
<tr class="memdesc:aa4b806974a96ecb62991bd8b5f88ae69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates mu for the supplied lambda and the recombination strategy.  <br /></td></tr>
<tr class="separator:aa4b806974a96ecb62991bd8b5f88ae69"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-types" name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:a2544cd9f49fe9579d351e2689e3bd96f" id="r_a2544cd9f49fe9579d351e2689e3bd96f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classshark_1_1_individual.html">Individual</a>&lt; RealVector, double, RealVector &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a2544cd9f49fe9579d351e2689e3bd96f">IndividualType</a></td></tr>
<tr class="memdesc:a2544cd9f49fe9579d351e2689e3bd96f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of individual used for the <a class="el" href="classshark_1_1_c_m_a.html" title="Implements the CMA-ES.">CMA</a>.  <br /></td></tr>
<tr class="separator:a2544cd9f49fe9579d351e2689e3bd96f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a6013d0aa09665a3ed034ddc06be7f6cf" id="r_a6013d0aa09665a3ed034ddc06be7f6cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> std::vector&lt; <a class="el" href="classshark_1_1_c_m_a.html#a2544cd9f49fe9579d351e2689e3bd96f">IndividualType</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a6013d0aa09665a3ed034ddc06be7f6cf">generateOffspring</a> () const</td></tr>
<tr class="memdesc:a6013d0aa09665a3ed034ddc06be7f6cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Samples lambda individuals from the search distribution <br  />
  <br /></td></tr>
<tr class="separator:a6013d0aa09665a3ed034ddc06be7f6cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d4013411242e9bb5f6c4aa943242817" id="r_a2d4013411242e9bb5f6c4aa943242817"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a2d4013411242e9bb5f6c4aa943242817">updatePopulation</a> (std::vector&lt; <a class="el" href="classshark_1_1_c_m_a.html#a2544cd9f49fe9579d351e2689e3bd96f">IndividualType</a> &gt; const &amp;offspring)</td></tr>
<tr class="memdesc:a2d4013411242e9bb5f6c4aa943242817"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the strategy parameters based on the supplied offspring population.  <br /></td></tr>
<tr class="separator:a2d4013411242e9bb5f6c4aa943242817"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a862a084a4facd795a1f99267c4c4e1e1" id="r_a862a084a4facd795a1f99267c4c4e1e1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_c_m_a.html#a862a084a4facd795a1f99267c4c4e1e1">doInit</a> (std::vector&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt; const &amp;points, std::vector&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a068a68c8739215f4a13ce8a433ec38b3">ResultType</a> &gt; const &amp;functionValues, std::size_t <a class="el" href="classshark_1_1_c_m_a.html#a7beed1a597007c62fe9e397c5e6ea6f6">lambda</a>, std::size_t <a class="el" href="classshark_1_1_c_m_a.html#a5c5cd3173b9aef38c6e113517bd8b3d6">mu</a>, double initialSigma)</td></tr>
<tr class="separator:a862a084a4facd795a1f99267c4c4e1e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classshark_1_1_abstract_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classshark_1_1_abstract_optimizer')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classshark_1_1_abstract_optimizer.html">shark::AbstractOptimizer&lt; PointType, ResultT, SolutionTypeT &gt;</a></td></tr>
<tr class="memitem:ae7a23300641448c761b6aa0305b7ef66 inherit pro_methods_classshark_1_1_abstract_optimizer" id="r_ae7a23300641448c761b6aa0305b7ef66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#ae7a23300641448c761b6aa0305b7ef66">checkFeatures</a> (<a class="el" href="classshark_1_1_abstract_optimizer.html#ac7a9b0634e5a5cbd683f5510b41b7062">ObjectiveFunctionType</a> const &amp;objectiveFunction)</td></tr>
<tr class="memdesc:ae7a23300641448c761b6aa0305b7ef66 inherit pro_methods_classshark_1_1_abstract_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function that checks whether the features of the supplied objective function match with the required features of the optimizer.  <br /></td></tr>
<tr class="separator:ae7a23300641448c761b6aa0305b7ef66 inherit pro_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classshark_1_1_abstract_single_objective_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classshark_1_1_abstract_single_objective_optimizer')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html">shark::AbstractSingleObjectiveOptimizer&lt; RealVector &gt;</a></td></tr>
<tr class="memitem:a4740a0f8e9d5c7d99cf0dd0c3ee0e8a0 inherit pro_attribs_classshark_1_1_abstract_single_objective_optimizer" id="r_a4740a0f8e9d5c7d99cf0dd0c3ee0e8a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a8abcd574faa4b7bd2fed03465d1eda35">SolutionType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a4740a0f8e9d5c7d99cf0dd0c3ee0e8a0">m_best</a></td></tr>
<tr class="memdesc:a4740a0f8e9d5c7d99cf0dd0c3ee0e8a0 inherit pro_attribs_classshark_1_1_abstract_single_objective_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current solution of the optimizer.  <br /></td></tr>
<tr class="separator:a4740a0f8e9d5c7d99cf0dd0c3ee0e8a0 inherit pro_attribs_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classshark_1_1_abstract_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classshark_1_1_abstract_optimizer')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classshark_1_1_abstract_optimizer.html">shark::AbstractOptimizer&lt; PointType, ResultT, SolutionTypeT &gt;</a></td></tr>
<tr class="memitem:a72daf583d406e144b90869f311baa594 inherit pro_attribs_classshark_1_1_abstract_optimizer" id="r_a72daf583d406e144b90869f311baa594"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_abstract_optimizer.html#ab43ff108d945a982e98495432ace599f">Features</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a72daf583d406e144b90869f311baa594">m_features</a></td></tr>
<tr class="separator:a72daf583d406e144b90869f311baa594 inherit pro_attribs_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implements the CMA-ES. </p>
<p>The algorithm is described in</p>
<p>Hansen, N., S. Kern (2004). Evaluating the <a class="el" href="classshark_1_1_c_m_a.html" title="Implements the CMA-ES.">CMA</a> Evolution Strategy on Multimodal Test Functions. In Proceedings of the Eighth International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 282-291, LNCS, Springer-Verlag</p>
<p>For noisy function, noise handling is supported using the noise level detection algorithm described in Hansen, N., et al. "A method for handling uncertainty in evolutionary
optimization with an application to feedback control of combustion." IEEE Transactions on Evolutionary Computation 13.1 (2009): 180-197. Our implementation varies in small details, e.g. instead of the average rank the rank of the average function value is used for updating the strategy parameters which ensures asymptotic unbiasedness. We further do not have an upper bound on the number of reevaluations for the same reason. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00066">66</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a2544cd9f49fe9579d351e2689e3bd96f" name="a2544cd9f49fe9579d351e2689e3bd96f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2544cd9f49fe9579d351e2689e3bd96f">&#9670;&#160;</a></span>IndividualType</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classshark_1_1_individual.html">Individual</a>&lt;RealVector, double, RealVector&gt; <a class="el" href="classshark_1_1_c_m_a.html#a2544cd9f49fe9579d351e2689e3bd96f">shark::CMA::IndividualType</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The type of individual used for the <a class="el" href="classshark_1_1_c_m_a.html" title="Implements the CMA-ES.">CMA</a>. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00211">211</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="aafbd8e245dd9f8aad0e0e597557c9eb3" name="aafbd8e245dd9f8aad0e0e597557c9eb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafbd8e245dd9f8aad0e0e597557c9eb3">&#9670;&#160;</a></span>RecombinationType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3">shark::CMA::RecombinationType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Models the recombination type. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aafbd8e245dd9f8aad0e0e597557c9eb3addcb82a4284c2072d046f6f6c5ae354d" name="aafbd8e245dd9f8aad0e0e597557c9eb3addcb82a4284c2072d046f6f6c5ae354d"></a>EQUAL&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aafbd8e245dd9f8aad0e0e597557c9eb3a8b5ed54ee62cc5823b177633b76c376c" name="aafbd8e245dd9f8aad0e0e597557c9eb3a8b5ed54ee62cc5823b177633b76c376c"></a>LINEAR&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aafbd8e245dd9f8aad0e0e597557c9eb3a791798e0145d16d584a2bbb7d2deddb7" name="aafbd8e245dd9f8aad0e0e597557c9eb3a791798e0145d16d584a2bbb7d2deddb7"></a>SUPERLINEAR&#160;</td><td class="fielddoc"></td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00070">70</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a87ad8d08471b5488311a53c5f0a07594" name="a87ad8d08471b5488311a53c5f0a07594"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87ad8d08471b5488311a53c5f0a07594">&#9670;&#160;</a></span>CMA()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> shark::CMA::CMA </td>
          <td>(</td>
          <td class="paramtype">random::rng_type &amp;&#160;</td>
          <td class="paramname"><em>rng</em> = <code><a class="el" href="namespaceshark_1_1random.html#ab5c1547eee483974d008d43f621a2234">random::globalRng</a></code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Default c'tor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a7a80596955e5d064cc8e6f2a69498c5e" name="a7a80596955e5d064cc8e6f2a69498c5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a80596955e5d064cc8e6f2a69498c5e">&#9670;&#160;</a></span>condition()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double shark::CMA::condition </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns condition of covariance matrix. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00198">198</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_c_m_a.html#a6735aa83880d1be9675f24dea483f665">eigenValues()</a>, and <a class="el" href="classshark_1_1_multi_variate_normal_distribution.html#a304ff217e3a7ad935387e7a92b67546e">shark::MultiVariateNormalDistribution::eigenValues()</a>.</p>

<p class="reference">Referenced by <a class="el" href="_c_m_a_plot_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a id="a2fe67c78f272defd3e468d0eeaa1a553" name="a2fe67c78f272defd3e468d0eeaa1a553"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fe67c78f272defd3e468d0eeaa1a553">&#9670;&#160;</a></span>covarianceMatrix()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">RealMatrix const  &amp; shark::CMA::covarianceMatrix </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Accesses the covariance matrix of the normal distribution used for generating offspring individuals. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00142">142</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_multi_variate_normal_distribution.html#ab2f0af22ae2978225f6990f2abc01079">shark::MultiVariateNormalDistribution::covarianceMatrix()</a>.</p>

</div>
</div>
<a id="a862a084a4facd795a1f99267c4c4e1e1" name="a862a084a4facd795a1f99267c4c4e1e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a862a084a4facd795a1f99267c4c4e1e1">&#9670;&#160;</a></span>doInit()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void shark::CMA::doInit </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt; const &amp;&#160;</td>
          <td class="paramname"><em>points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a068a68c8739215f4a13ce8a433ec38b3">ResultType</a> &gt; const &amp;&#160;</td>
          <td class="paramname"><em>functionValues</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>lambda</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>mu</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>initialSigma</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a6735aa83880d1be9675f24dea483f665" name="a6735aa83880d1be9675f24dea483f665"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6735aa83880d1be9675f24dea483f665">&#9670;&#160;</a></span>eigenValues()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">RealVector const  &amp; shark::CMA::eigenValues </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a eigenvectors of covariance matrix (not considering step size) </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00193">193</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_multi_variate_normal_distribution.html#a304ff217e3a7ad935387e7a92b67546e">shark::MultiVariateNormalDistribution::eigenValues()</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_c_m_a.html#a7a80596955e5d064cc8e6f2a69498c5e">condition()</a>, and <a class="el" href="_c_m_a_plot_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a id="a258efdafafccec607bd09eaebd9955cc" name="a258efdafafccec607bd09eaebd9955cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a258efdafafccec607bd09eaebd9955cc">&#9670;&#160;</a></span>eigenVectors()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">RealMatrix const  &amp; shark::CMA::eigenVectors </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns eigenvectors of covariance matrix (not considering step size) </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00188">188</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_multi_variate_normal_distribution.html#aa1a79af05867366d0ca300825a29a87a">shark::MultiVariateNormalDistribution::eigenVectors()</a>.</p>

<p class="reference">Referenced by <a class="el" href="_c_m_a_plot_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a id="ad70e86120d062d0a79b11e4830586655" name="ad70e86120d062d0a79b11e4830586655"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad70e86120d062d0a79b11e4830586655">&#9670;&#160;</a></span>evolutionPath()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">RealVector const  &amp; shark::CMA::evolutionPath </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Accesses the evolution path for the covariance matrix update. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00132">132</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

</div>
</div>
<a id="a441e3888a8ec95f696cc49bd5f3c5a36" name="a441e3888a8ec95f696cc49bd5f3c5a36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a441e3888a8ec95f696cc49bd5f3c5a36">&#9670;&#160;</a></span>evolutionPathSigma()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">RealVector const  &amp; shark::CMA::evolutionPathSigma </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Accesses the evolution path for the step size update. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00137">137</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

</div>
</div>
<a id="a6013d0aa09665a3ed034ddc06be7f6cf" name="a6013d0aa09665a3ed034ddc06be7f6cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6013d0aa09665a3ed034ddc06be7f6cf">&#9670;&#160;</a></span>generateOffspring()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> std::vector&lt; <a class="el" href="classshark_1_1_c_m_a.html#a2544cd9f49fe9579d351e2689e3bd96f">IndividualType</a> &gt; shark::CMA::generateOffspring </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Samples lambda individuals from the search distribution <br  />
 </p>

</div>
</div>
<a id="a6de4377a5bdc84947c86d0394be08179" name="a6de4377a5bdc84947c86d0394be08179"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6de4377a5bdc84947c86d0394be08179">&#9670;&#160;</a></span>init() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void shark::CMA::init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#aa4c05609c54d7ebc99d099e7dd6e228f">ObjectiveFunctionType</a> const &amp;&#160;</td>
          <td class="paramname"><em>function</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> const &amp;&#160;</td>
          <td class="paramname"><em>initialSearchPoint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>lambda</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>mu</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>initialSigma</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::optional&lt; RealMatrix &gt; &amp;&#160;</td>
          <td class="paramname"><em>initialCovarianceMatrix</em> = <code>boost::optional&lt;&#160;RealMatrix&#160;&gt;()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes the algorithm for the supplied objective function. </p>

</div>
</div>
<a id="a28cc4e5f5429c3a6c1b650c1f75e76db" name="a28cc4e5f5429c3a6c1b650c1f75e76db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28cc4e5f5429c3a6c1b650c1f75e76db">&#9670;&#160;</a></span>init() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void shark::CMA::init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#aa4c05609c54d7ebc99d099e7dd6e228f">ObjectiveFunctionType</a> const &amp;&#160;</td>
          <td class="paramname"><em>function</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> const &amp;&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Initializes the algorithm for the supplied objective function. </p>

<p>Implements <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#ae53c1a8348f5ab987f5aa8829fd8020f">shark::AbstractSingleObjectiveOptimizer&lt; RealVector &gt;</a>.</p>

<p class="reference">Referenced by <a class="el" href="_archive_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, and <a class="el" href="_c_m_a_experiment_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a id="a7beed1a597007c62fe9e397c5e6ea6f6" name="a7beed1a597007c62fe9e397c5e6ea6f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7beed1a597007c62fe9e397c5e6ea6f6">&#9670;&#160;</a></span>lambda()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::size_t shark::CMA::lambda </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a immutable reference to the size of the offspring population \(\mu\). </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00183">183</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_c_m_a.html#a2204984f1f5de901f4c69c64a51fb765">setLambda()</a>.</p>

</div>
</div>
<a id="a67da4539c2b2e375f2c308c190fc5b4f" name="a67da4539c2b2e375f2c308c190fc5b4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67da4539c2b2e375f2c308c190fc5b4f">&#9670;&#160;</a></span>lowerBound()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const double &amp; shark::CMA::lowerBound </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a const reference to the lower bound on sigma times smalles eigenvalue. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00157">157</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_c_m_a.html#a2f4512c82509097dfbb327971032c49f">setLowerBound()</a>.</p>

</div>
</div>
<a id="ae078f86fe38152ef21788d97878dc959" name="ae078f86fe38152ef21788d97878dc959"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae078f86fe38152ef21788d97878dc959">&#9670;&#160;</a></span>mean()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">RealVector const  &amp; shark::CMA::mean </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Accesses the current population mean. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00122">122</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="_c_m_a_plot_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a id="a5c5cd3173b9aef38c6e113517bd8b3d6" name="a5c5cd3173b9aef38c6e113517bd8b3d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c5cd3173b9aef38c6e113517bd8b3d6">&#9670;&#160;</a></span>mu()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::size_t shark::CMA::mu </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the size of the parent population \(\mu\). </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00167">167</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_c_m_a.html#aad3d3aa0509567312d63c4a42fa90812">setMu()</a>.</p>

</div>
</div>
<a id="a5552a900fb20cb35af9103467796e18e" name="a5552a900fb20cb35af9103467796e18e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5552a900fb20cb35af9103467796e18e">&#9670;&#160;</a></span>name()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string shark::CMA::name </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>From <a class="el" href="classshark_1_1_i_nameable.html" title="This class is an interface for all objects which can have a name.">INameable</a>: return the class name. </p>

<p>Reimplemented from <a class="el" href="classshark_1_1_i_nameable.html#a9893f99314de30cd472e649c235d0db4">shark::INameable</a>.</p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00080">80</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

</div>
</div>
<a id="a217a3a2c532ba6f3adfe58bb13b8de44" name="a217a3a2c532ba6f3adfe58bb13b8de44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a217a3a2c532ba6f3adfe58bb13b8de44">&#9670;&#160;</a></span>numberOfEvaluations()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::size_t shark::CMA::numberOfEvaluations </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns how often a point is evaluated. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00204">204</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

</div>
</div>
<a id="af043e55b471f98e30cf86e00349ddb5b" name="af043e55b471f98e30cf86e00349ddb5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af043e55b471f98e30cf86e00349ddb5b">&#9670;&#160;</a></span>read()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void shark::CMA::read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceshark.html#ada68729491840669e47c8ad42282424f">InArchive</a> &amp;&#160;</td>
          <td class="paramname"><em>archive</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Read the component from the supplied archive. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">archive</td><td>The archive to read from. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classshark_1_1_i_serializable.html#ad4ad9a7c274deff642f91e98417fbc63">shark::ISerializable</a>.</p>

</div>
</div>
<a id="a348c6dfe6ac26b96e895e0cd4548883b" name="a348c6dfe6ac26b96e895e0cd4548883b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a348c6dfe6ac26b96e895e0cd4548883b">&#9670;&#160;</a></span>recombinationType() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3">RecombinationType</a> &amp; shark::CMA::recombinationType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a mutable reference to the recombination type. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00152">152</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

</div>
</div>
<a id="a013cafb7bc9296b5a07e8f400be1d538" name="a013cafb7bc9296b5a07e8f400be1d538"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a013cafb7bc9296b5a07e8f400be1d538">&#9670;&#160;</a></span>recombinationType() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3">RecombinationType</a> shark::CMA::recombinationType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Accesses the recombination type. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00147">147</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

</div>
</div>
<a id="a292d0d4952eb924db23f028fa2f9135d" name="a292d0d4952eb924db23f028fa2f9135d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a292d0d4952eb924db23f028fa2f9135d">&#9670;&#160;</a></span>setInitialSigma()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void shark::CMA::setInitialSigma </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>initSigma</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>sets the initial step length sigma </p>
<p>It is by default &lt;=0 which means that sigma =1/sqrt(numVariables) </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00112">112</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="_c_m_a_simple_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a id="a2204984f1f5de901f4c69c64a51fb765" name="a2204984f1f5de901f4c69c64a51fb765"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2204984f1f5de901f4c69c64a51fb765">&#9670;&#160;</a></span>setLambda()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void shark::CMA::setLambda </td>
          <td>(</td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>lambda</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the number of sampled points. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00177">177</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_c_m_a.html#a7beed1a597007c62fe9e397c5e6ea6f6">lambda()</a>.</p>

</div>
</div>
<a id="a2f4512c82509097dfbb327971032c49f" name="a2f4512c82509097dfbb327971032c49f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f4512c82509097dfbb327971032c49f">&#9670;&#160;</a></span>setLowerBound()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void shark::CMA::setLowerBound </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>lowerBound</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the lower bound on sigma times smalles eigenvalue. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00162">162</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_c_m_a.html#a67da4539c2b2e375f2c308c190fc5b4f">lowerBound()</a>.</p>

</div>
</div>
<a id="aad3d3aa0509567312d63c4a42fa90812" name="aad3d3aa0509567312d63c4a42fa90812"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad3d3aa0509567312d63c4a42fa90812">&#9670;&#160;</a></span>setMu()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void shark::CMA::setMu </td>
          <td>(</td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>mu</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the number of selected samples. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00172">172</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_c_m_a.html#a5c5cd3173b9aef38c6e113517bd8b3d6">mu()</a>.</p>

</div>
</div>
<a id="a65bdf7e58529550129e284b9dc4d55a3" name="a65bdf7e58529550129e284b9dc4d55a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65bdf7e58529550129e284b9dc4d55a3">&#9670;&#160;</a></span>sigma()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double shark::CMA::sigma </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Accesses the current step size. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00117">117</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="_archive_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, and <a class="el" href="_c_m_a_plot_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a id="a4aa0ce8e2e580d20c5a99e5723e974b1" name="a4aa0ce8e2e580d20c5a99e5723e974b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4aa0ce8e2e580d20c5a99e5723e974b1">&#9670;&#160;</a></span>step()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void shark::CMA::step </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#aa4c05609c54d7ebc99d099e7dd6e228f">ObjectiveFunctionType</a> const &amp;&#160;</td>
          <td class="paramname"><em>function</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Executes one iteration of the algorithm. </p>

<p class="reference">Referenced by <a class="el" href="_archive_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, and <a class="el" href="_c_m_a_experiment_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>.</p>

</div>
</div>
<a id="afc7fa629a06f22c0f1cb09ca8c7cedd2" name="afc7fa629a06f22c0f1cb09ca8c7cedd2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc7fa629a06f22c0f1cb09ca8c7cedd2">&#9670;&#160;</a></span>suggestLambda()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> std::size_t shark::CMA::suggestLambda </td>
          <td>(</td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>dimension</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calculates lambda for the supplied dimensionality n. </p>

</div>
</div>
<a id="aa4b806974a96ecb62991bd8b5f88ae69" name="aa4b806974a96ecb62991bd8b5f88ae69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4b806974a96ecb62991bd8b5f88ae69">&#9670;&#160;</a></span>suggestMu()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> std::size_t shark::CMA::suggestMu </td>
          <td>(</td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>lambda</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3">RecombinationType</a>&#160;</td>
          <td class="paramname"><em>recomb</em> = <code><a class="el" href="classshark_1_1_c_m_a.html#aafbd8e245dd9f8aad0e0e597557c9eb3a791798e0145d16d584a2bbb7d2deddb7">SUPERLINEAR</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calculates mu for the supplied lambda and the recombination strategy. </p>

</div>
</div>
<a id="a2d4013411242e9bb5f6c4aa943242817" name="a2d4013411242e9bb5f6c4aa943242817"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d4013411242e9bb5f6c4aa943242817">&#9670;&#160;</a></span>updatePopulation()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void shark::CMA::updatePopulation </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classshark_1_1_c_m_a.html#a2544cd9f49fe9579d351e2689e3bd96f">IndividualType</a> &gt; const &amp;&#160;</td>
          <td class="paramname"><em>offspring</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Updates the strategy parameters based on the supplied offspring population. </p>

</div>
</div>
<a id="abe589b2e99897da15278127267247ac8" name="abe589b2e99897da15278127267247ac8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe589b2e99897da15278127267247ac8">&#9670;&#160;</a></span>weights()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">RealVector const  &amp; shark::CMA::weights </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Accesses the current weighting vector. </p>

<p class="definition">Definition at line <a class="el" href="_c_m_a_8h_source.html#l00127">127</a> of file <a class="el" href="_c_m_a_8h_source.html">CMA.h</a>.</p>

</div>
</div>
<a id="a69554923b2647c1eddf0aa3ca5a1ab53" name="a69554923b2647c1eddf0aa3ca5a1ab53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69554923b2647c1eddf0aa3ca5a1ab53">&#9670;&#160;</a></span>write()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_d_l_l_support_8h.html#a54b73283f7f70b27fbd8ac5d4621827f">SHARK_EXPORT_SYMBOL</a> void shark::CMA::write </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceshark.html#af4f8eb8e9618f5236b71bbcb12b8a524">OutArchive</a> &amp;&#160;</td>
          <td class="paramname"><em>archive</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the component to the supplied archive. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">archive</td><td>The archive to write to. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classshark_1_1_i_serializable.html#a9bddedd42933c922e323b73131f62f12">shark::ISerializable</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/shark/Algorithms/DirectSearch/<a class="el" href="_c_m_a_8h_source.html">CMA.h</a></li>
</ul>
</div><!-- contents -->
</div>
</body>
</html>
